/*
 * GbtTime.h
 *
 *  Created on: 2018年1月8日
 *      Author: terry
 */

#ifndef GBTTIME_H_
#define GBTTIME_H_

#include "GbtConfig.h"


#ifdef __cplusplus
extern "C" {
#endif
///////////////////////////////////////////////////////////////////

/**
 * 获取当前时间, UTC时间
 * @return
 */
DLLEXPORT int64_t gbtTimeNow();

/**
 * 格式化时间为 yyyy-MM-dd'T'HH:mm:ss 格式
 * @param t     时间
 * @param str   缓冲区
 * @param size  缓冲区大小
 * @return 字符串大小
 */
DLLEXPORT size_t gbtTimeFormat(int64_t t, char* str, size_t size);

/**
 * 格式化时间为 yyyy-MM-dd'T'HH:mm:ss 模式. 当时间 <= 0 时, 格式化为空字符串.
 * @param t
 * @param str
 * @param size
 * @return
 */
DLLEXPORT size_t gbtTimeFormatValid(int64_t t, char* str, size_t size);

/**
 * 从字符串解析时间. 字符串格式为  yyyy-MM-dd'T'HH:mm:ss
 * @param str
 * @param size
 * @return
 */
DLLEXPORT int64_t gbtTimeParse(const char* str, size_t size);


/**
 * 将时间格式化为 yyyy-MM-dd'T'HH:mm:ss.SSS 格式
 * @param t     UTC时间, 秒部分
 * @param ms    毫秒部分
 * @param str
 * @param size
 * @return
 */
DLLEXPORT size_t gbtTimeFormatDate(int64_t t, int ms, char* str, size_t size);


/// 解析时间, UTC时间, 但单位为毫秒
DLLEXPORT int64_t gbtTimeParseDate(const char* str, size_t);

///////////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif


#endif /* GBTTIME_H_ */
